package ms.jacrim.pddl;

import org.w3c.dom.Element;

public interface SolutionEvaluator {
	/**
	 * Name of the evaluator
	 * 
	 * @return
	 */
	String Name();
	
	/**
	 * Get score value of the last evaluation.
	 * 
	 * @return
	 */
	float Score();

	float getCoefficence();
	
	void setCoeffience(float value);
	
	float evaluate(PddlSolution solution) throws Exception;
	
	void loadConfig(Element node);
	
	<T> T get(String propertyName);

	<T> void set(String propertyName, T value);
}
